package vip.xiaonuo.supplier.modular.warehouse.stocks.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import jakarta.servlet.http.HttpServletResponse;
import vip.xiaonuo.supplier.modular.base.productions.param.SupplierProductionsPageParam;
import vip.xiaonuo.supplier.modular.warehouse.stocks.entity.SupplierStocks;
import vip.xiaonuo.supplier.modular.warehouse.stocks.param.*;

import java.io.IOException;
import java.util.List;

/**
 * 库存明细Service接口
 *
 * @author Mr.wu
 * @date  2025/03/18 14:28
 **/
public interface SupplierStocksService extends IService<SupplierStocks> {

    /**
     * 获取库存明细分页
     *
     * @author Mr.wu
     * @date  2025/03/18 14:28
     */
    Page<SupplierStocks> page(SupplierStocksPageParam supplierStocksPageParam);

    /**
     * 添加库存明细
     *
     * @author Mr.wu
     * @date  2025/03/18 14:28
     */
    void add(SupplierStocksAddParam supplierStocksAddParam);

    /**
     * 编辑库存明细
     *
     * @author Mr.wu
     * @date  2025/03/18 14:28
     */
    void edit(SupplierStocksEditParam supplierStocksEditParam);

    /**
     * 删除库存明细
     *
     * @author Mr.wu
     * @date  2025/03/18 14:28
     */
    void delete(List<SupplierStocksIdParam> supplierStocksIdParamList);

    /**
     * 获取库存明细详情
     *
     * @author Mr.wu
     * @date  2025/03/18 14:28
     */
    SupplierStocks detail(SupplierStocksIdParam supplierStocksIdParam);

    /**
     * 获取库存明细详情
     *
     * @author Mr.wu
     * @date  2025/03/18 14:28
     **/
    SupplierStocks queryEntity(String id);

    /**
     * 导出库存明细
     *
     * @author Mr.wu
     * @date  2024/11/08 09:12
     **/
    void exportStock(SupplierStocksExportParam supplierStocksExportParam, HttpServletResponse response) throws IOException;

    /**
     * 根据供应商信息获取库存明细分页
     *
     * @author Mr.wu
     * @date  2025/05/18 14:28
     */
    Page<SupplierStocks> stocksBySupplierPage(SupplierProductionsPageParam supplierProductionsPageParam);
}
